package com.ly.wxstore.repository;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ly.wxstore.entity.UserInfo;

/**
 * 通过@MapperScannerConfigurer扫描目录中的所有接口, 动态在Spring Context中生成实现.
 * 方法名称必须与Mapper.xml中保持一致.
 * 
 * @author peter
 */
@MyBatisRepository
public interface UserInfoDao {
	
	UserInfo getById(Long id);
	
	List<UserInfo> getAll();
	
	/**
	 * 分页查询
	 * @param overtime
	 * @param pageStart
	 * @param pageSize
	 * @return
	 */
	List<UserInfo> searchPage(@Param("userInfo")UserInfo userInfo,@Param("pageStart")int pageStart,@Param("pageSize")int pageSize);
	
	/**
	 * 分页查询总记录数
	 * @param overtime
	 * @return
	 */
	Long searchCount(UserInfo userInfo);
	
	void save(UserInfo userInfo);
	
	void update(UserInfo userInfo);
	
	/**
	 * 软删除
	 */
	void delete(Long id);

	//------------------------------------------------------------------------
	UserInfo getByUid(String uid);
	
	
	//查询 根据名称或编号
	List<UserInfo> searchByNameOrId(UserInfo userInfo);
	
	//最新参考，根据ID倒叙
	List<UserInfo> getAllOrderByIdDesc();
	
	//查询 初赛 根据票数倒叙
	List<UserInfo> getAllOrderByFirstTicketsDesc();
	
	//查询 决赛 根据票数倒叙
	List<UserInfo> getAllOrderBySecondTicketsDesc();

	//查询今天已为他家投票的票数
	Long searchRemainVoteForHome(@Param("currentUid")String currentUid, @Param("homeUid")String homeUid);
	
	//查询今天剩余的票数
	Long searchRemainVote(@Param("currentUid")String currentUid);

	//总票数+1
	void voteForFirst(@Param("homeUid")String homeUid);


}
